/*
 * Copyright (C) 2011-2012 Andrew Wells
 *
 * Licensed under the GNU License, Version 3
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.gnu.org/copyleft/gpl.html
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * Dungeons & Dragons Copyright (C) Wizards of the Coast. I do not claim
 * the right to any information used from their books or resources.
 */

package com.trace.wells.charactertracker;

import java.io.Serializable;

public class Armor extends Equipment implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int armorClassType;
	private int armorShieldBonus;
	private int maxDexBonus;
	private int armorCheckPenalty;
	private int arcaneSpellFailure;
	private int speed;
	private boolean isEquipped;

	public Armor(int armorClassType, int equipmentType, int value, String name, int weight, int armorShieldBonus,
			int maxDexBonus, int armorCheckPenalty, int arcaneSpellFailure, int speed, boolean isEquipped) {
		super(equipmentType, value, name, weight);
		this.armorClassType = armorClassType;
		this.armorShieldBonus = armorShieldBonus;
		this.maxDexBonus = maxDexBonus;
		this.armorCheckPenalty = armorCheckPenalty;
		this.arcaneSpellFailure = arcaneSpellFailure;
		this.speed = speed;
		this.isEquipped = isEquipped;
	}

	/**
	 * @return the armorShieldBonus
	 */
	public int getArmorShieldBonus() {
		return armorShieldBonus;
	}

	/**
	 * @param armorShieldBonus
	 *            the armorShieldBonus to set
	 */
	public void setArmorShieldBonus(int armorShieldBonus) {
		this.armorShieldBonus = armorShieldBonus;
	}

	/**
	 * @return the maxDexBonus
	 */
	public int getMaxDexBonus() {
		return maxDexBonus;
	}

	/**
	 * @param maxDexBonus
	 *            the maxDexBonus to set
	 */
	public void setMaxDexBonus(int maxDexBonus) {
		this.maxDexBonus = maxDexBonus;
	}

	/**
	 * @return the armorCheckPenalty
	 */
	public int getArmorCheckPenalty() {
		return armorCheckPenalty;
	}

	/**
	 * @param armorCheckPenalty
	 *            the armorCheckPenalty to set
	 */
	public void setArmorCheckPenalty(int armorCheckPenalty) {
		this.armorCheckPenalty = armorCheckPenalty;
	}

	/**
	 * @return the arcaneSpellFailure
	 */
	public int getArcaneSpellFailure() {
		return arcaneSpellFailure;
	}

	/**
	 * @param arcaneSpellFailure
	 *            the arcaneSpellFailure to set
	 */
	public void setArcaneSpellFailure(int arcaneSpellFailure) {
		this.arcaneSpellFailure = arcaneSpellFailure;
	}

	/**
	 * @return the speed
	 */
	public int getSpeed() {
		return speed;
	}

	/**
	 * @param speed
	 *            the speed to set
	 */
	public void setSpeed(int speed) {
		this.speed = speed;
	}

	public void setEquipped(boolean isEquipped) {
		this.isEquipped = isEquipped;
	}

	public boolean isEquipped() {
		return isEquipped;
	}

	public void setArmorClassType(int armorClassType) {
		this.armorClassType = armorClassType;
	}

	public int getArmorClassType() {
		return armorClassType;
	}
}
